package org.eiahe.hr.attendance.service;

import org.eiahe.hr.attendance.domain.bo.EmployeeAttendanceTypeBo;
import org.eiahe.hr.attendance.domain.vo.EmployeeAttendanceTypeVo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.time.LocalDate;
import java.util.Collection;
import java.util.List;

/**
 * 员工考勤类型Service接口
 *
 * @author zhangnn
 */
public interface IEmployeeAttendanceTypeService {

    /**
     * 查询员工考勤类型
     */
    EmployeeAttendanceTypeVo queryById(Long id);

    /**
     * 查询员工考勤类型列表
     */
    TableDataInfo<EmployeeAttendanceTypeVo> queryPageList(EmployeeAttendanceTypeBo bo, PageQuery pageQuery);

    /**
     * 查询员工考勤类型列表
     */
    List<EmployeeAttendanceTypeVo> queryList(EmployeeAttendanceTypeBo bo);

    /**
     * 新增员工考勤类型
     */
    Boolean insertByBo(EmployeeAttendanceTypeBo bo);

    /**
     * 修改员工考勤类型
     */
    Boolean updateByBo(EmployeeAttendanceTypeBo bo);

    /**
     * 校验并批量删除员工考勤类型信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids);

    /**
     * 批量分配员工考勤类型
     */
    Boolean batchAssign(EmployeeAttendanceTypeBo bo);

    /**
     * 查询员工在指定日期的考勤类型
     */
    EmployeeAttendanceTypeVo queryByEmployeeIdAndDate(Long employeeId, LocalDate date);
}
